using System;
using System.Collections;

namespace Utils.Coroutine
{
    internal class ActionEntry
    {
        // 用于存储协程的枚举器
        internal readonly IEnumerator Enumerator;
        // 用于存储在协程执行完毕后的回调函数
        internal readonly Action Callback;

        internal ActionEntry(IEnumerator enumerator)
        {
            this.Enumerator = enumerator; // 设置协程的枚举器
            Callback = null; // 回调函数为空
        }

        internal ActionEntry(Action callback)
        {
            Enumerator = null; // 协程的枚举器为空
            this.Callback = callback; // 设置回调函数
        }

        internal ActionEntry(IEnumerator enumerator, Action callback)
        {
            this.Enumerator = enumerator; // 设置协程的枚举器
            this.Callback = callback; // 设置回调函数
        }
    }
}
